package com.example.onlinemonitoring.model;

import com.example.onlinemonitoring.model.common.sensor;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.example.onlinemonitoring.AOP.Float2Serializer;
import javax.persistence.Id;
import java.util.Date;

public class Imhistory extends sensor {
    /**
     * IM历史资料编号
     */
    @Id
    private Long id;

    /**
     * im设备监测单元编号。外键，指向IMSensor表。
     */
    private Integer imsensorid;

    /**
     * 变电站编号
     */
    private Integer stationid;

    private Integer devicegroup;

    /**
     * 设备地址
     */
    private Integer deviceaddr;

    private String addrname;

    /**
     * 监测点
     */
    private Integer pointaddr;

    /**
     * 监测点的名称。
     */
    private String pointname;

    /**
     * 获取数据的时间。
     */
    private Date datatime;

    /**
     * 监测值-
     */
    @JsonSerialize(using = Float2Serializer.class)
    private Float data;

    /**
     * 报警级别。0=正常，1=预警，2=报警
     */
    private Integer alarmlevel;

    /**
     * 报警信息文本。如果无报警，则为空文本。
     */
    private String alarmmessage;

    /**
     * 通信状态。0表示正常，1表示异常。不论通信成功或者失败，都必须修改此值。
     */
    private Integer communicationstatus;

    /**
     * 智能监控器上面定的分母系数
     */
    @JsonSerialize(using = Float2Serializer.class)
    private Float denominator;

    /**
     * 单位
     */
    private String unit;

    /**
     * 字段显示名称
     */
    private String name;

    /**
     * 备注信息
     */
    private String memo;

    /**
     * vue版的XY坐标
     */
    private String style;

    /**
     * 是否使用
     */
    private Integer inuse;

    /**
     * 获取IM历史资料编号
     *
     * @return id - IM历史资料编号
     */
    public Long getId() {
        return id;
    }

    /**
     * 设置IM历史资料编号
     *
     * @param id IM历史资料编号
     */
    public void setId(Long id) {
        this.id = id;
    }

    /**
     * 获取im设备监测单元编号。外键，指向IMSensor表。
     *
     * @return imsensorid - im设备监测单元编号。外键，指向IMSensor表。
     */
    public Integer getImsensorid() {
        return imsensorid;
    }

    /**
     * 设置im设备监测单元编号。外键，指向IMSensor表。
     *
     * @param imsensorid im设备监测单元编号。外键，指向IMSensor表。
     */
    public void setImsensorid(Integer imsensorid) {
        this.imsensorid = imsensorid;
    }

    /**
     * 获取变电站编号
     *
     * @return stationid - 变电站编号
     */
    public Integer getStationid() {
        return stationid;
    }

    /**
     * 设置变电站编号
     *
     * @param stationid 变电站编号
     */
    public void setStationid(Integer stationid) {
        this.stationid = stationid;
    }

    /**
     * @return devicegroup
     */
    public Integer getDevicegroup() {
        return devicegroup;
    }

    /**
     * @param devicegroup
     */
    public void setDevicegroup(Integer devicegroup) {
        this.devicegroup = devicegroup;
    }

    /**
     * 获取设备地址
     *
     * @return deviceaddr - 设备地址
     */
    public Integer getDeviceaddr() {
        return deviceaddr;
    }

    /**
     * 设置设备地址
     *
     * @param deviceaddr 设备地址
     */
    public void setDeviceaddr(Integer deviceaddr) {
        this.deviceaddr = deviceaddr;
    }

    /**
     * @return addrname
     */
    public String getAddrname() {
        return addrname;
    }

    /**
     * @param addrname
     */
    public void setAddrname(String addrname) {
        this.addrname = addrname;
    }

    /**
     * 获取监测点
     *
     * @return pointaddr - 监测点
     */
    public Integer getPointaddr() {
        return pointaddr;
    }

    /**
     * 设置监测点
     *
     * @param pointaddr 监测点
     */
    public void setPointaddr(Integer pointaddr) {
        this.pointaddr = pointaddr;
    }

    /**
     * 获取监测点的名称。
     *
     * @return pointname - 监测点的名称。
     */
    public String getPointname() {
        return pointname;
    }

    /**
     * 设置监测点的名称。
     *
     * @param pointname 监测点的名称。
     */
    public void setPointname(String pointname) {
        this.pointname = pointname;
    }

    /**
     * 获取获取数据的时间。
     *
     * @return datatime - 获取数据的时间。
     */
    public Date getDatatime() {
        return datatime;
    }

    /**
     * 设置获取数据的时间。
     *
     * @param datatime 获取数据的时间。
     */
    public void setDatatime(Date datatime) {
        this.datatime = datatime;
    }

    /**
     * 获取监测值-
     *
     * @return data - 监测值-
     */
    public Float getData() {
        return data;
    }

    /**
     * 设置监测值-
     *
     * @param data 监测值-
     */
    public void setData(Float data) {
        this.data = data;
    }

    /**
     * 获取报警级别。0=正常，1=预警，2=报警
     *
     * @return alarmlevel - 报警级别。0=正常，1=预警，2=报警
     */
    public Integer getAlarmlevel() {
        return alarmlevel;
    }

    /**
     * 设置报警级别。0=正常，1=预警，2=报警
     *
     * @param alarmlevel 报警级别。0=正常，1=预警，2=报警
     */
    public void setAlarmlevel(Integer alarmlevel) {
        this.alarmlevel = alarmlevel;
    }

    /**
     * 获取报警信息文本。如果无报警，则为空文本。
     *
     * @return alarmmessage - 报警信息文本。如果无报警，则为空文本。
     */
    public String getAlarmmessage() {
        return alarmmessage;
    }

    /**
     * 设置报警信息文本。如果无报警，则为空文本。
     *
     * @param alarmmessage 报警信息文本。如果无报警，则为空文本。
     */
    public void setAlarmmessage(String alarmmessage) {
        this.alarmmessage = alarmmessage;
    }

    /**
     * 获取通信状态。0表示正常，1表示异常。不论通信成功或者失败，都必须修改此值。
     *
     * @return communicationstatus - 通信状态。0表示正常，1表示异常。不论通信成功或者失败，都必须修改此值。
     */
    public Integer getCommunicationstatus() {
        return communicationstatus;
    }

    /**
     * 设置通信状态。0表示正常，1表示异常。不论通信成功或者失败，都必须修改此值。
     *
     * @param communicationstatus 通信状态。0表示正常，1表示异常。不论通信成功或者失败，都必须修改此值。
     */
    public void setCommunicationstatus(Integer communicationstatus) {
        this.communicationstatus = communicationstatus;
    }

    /**
     * 获取智能监控器上面定的分母系数
     *
     * @return denominator - 智能监控器上面定的分母系数
     */
    public Float getDenominator() {
        return denominator;
    }

    /**
     * 设置智能监控器上面定的分母系数
     *
     * @param denominator 智能监控器上面定的分母系数
     */
    public void setDenominator(Float denominator) {
        this.denominator = denominator;
    }

    /**
     * 获取单位
     *
     * @return unit - 单位
     */
    public String getUnit() {
        return unit;
    }

    /**
     * 设置单位
     *
     * @param unit 单位
     */
    public void setUnit(String unit) {
        this.unit = unit;
    }

    /**
     * 获取字段显示名称
     *
     * @return name - 字段显示名称
     */
    public String getName() {
        return name;
    }

    /**
     * 设置字段显示名称
     *
     * @param name 字段显示名称
     */
    public void setName(String name) {
        this.name = name;
    }

    /**
     * 获取备注信息
     *
     * @return memo - 备注信息
     */
    public String getMemo() {
        return memo;
    }

    /**
     * 设置备注信息
     *
     * @param memo 备注信息
     */
    public void setMemo(String memo) {
        this.memo = memo;
    }

    /**
     * 获取vue版的XY坐标
     *
     * @return style - vue版的XY坐标
     */
    public String getStyle() {
        return style;
    }

    /**
     * 设置vue版的XY坐标
     *
     * @param style vue版的XY坐标
     */
    public void setStyle(String style) {
        this.style = style;
    }

    /**
     * 获取是否使用
     *
     * @return inuse - 是否使用
     */
    public Integer getInuse() {
        return inuse;
    }

    /**
     * 设置是否使用
     *
     * @param inuse 是否使用
     */
    public void setInuse(Integer inuse) {
        this.inuse = inuse;
    }
}